const fs = require('fs');
const iconv = require('iconv-lite');

/**
 * 将指定文件的编码从 GBK 转换为 UTF-8
 * @param {string} filePath - 需要转换的文件路径
 */
function convertFileEncoding(filePath) {
  try {
    // 读取 GBK 编码的文件
    const buffer = fs.readFileSync(filePath);

    // 使用 iconv-lite 进行编码转换
    const content = iconv.decode(buffer, 'gbk'); // 这里确保识别 GBK 编码
    const utf8Content = iconv.encode(content, 'utf-8'); // 转为 UTF-8

    // 备份原文件
    // fs.copyFileSync(filePath, filePath + '.bak');

    // 重新以 UTF-8 写入文件
    fs.writeFileSync(filePath, utf8Content);

    console.log(`✅ 已成功转换: ${filePath}`);
  } catch (error) {
    console.error(`❌ 转换失败: ${filePath}, 错误:`, error.message);
  }
}

//// 你的源代码文件路径（修改为实际文件路径）
//const filePath = path.join(__dirname, 'src/chapter1/例子1/Hello.java'); // 请替换成你的文件路径
//convertFileEncoding(filePath);

module.exports = {
  convertFileEncoding
};
